<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Data Structures for Sets and Graphs: DirectlyAddressedSet Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Data Structures for Sets and Graphs
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#pro-static-attribs">Static Protected Attributes</a>  </div>
  <div class="headertitle">
<div class="title">DirectlyAddressedSet Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>A static or dynamic set of elements with direct addressing.  
 <a href="classDirectlyAddressedSet.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="DirectlyAddressedSet_8h_source.html">DirectlyAddressedSet.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for DirectlyAddressedSet:</div>
<div class="dyncontent">
<div class="center"><img src="classDirectlyAddressedSet__inherit__graph.png" border="0" usemap="#DirectlyAddressedSet_inherit__map" alt="Inheritance graph"/></div>
<map name="DirectlyAddressedSet_inherit__map" id="DirectlyAddressedSet_inherit__map">
<area shape="rect" id="node3" href="classBitMapDirectlyAddressedSet.html" title="A DirectlyAddressedSet implemented with an array of nodes, each node corresponding to a word of the s..." alt="" coords="204,83,425,112"/><area shape="rect" id="node17" href="classHashDirectlyAddressedSet.html" title="A static BitMapDirectlyAddressedSet implemented with a perfect hash table." alt="" coords="225,136,404,165"/><area shape="rect" id="node5" href="classArrayBitMapDirectlyAddressedSet.html" title="A BitMapDirectlyAddressedSet implemented with an array of words." alt="" coords="476,5,676,51"/><area shape="rect" id="node7" href="classHashBitMapDirectlyAddressedSet.html" title="HashBitMapDirectlyAddressed\lSet\&lt; T \&gt;" alt="" coords="476,74,676,121"/><area shape="rect" id="node9" href="classMultiLevelDirectlyAddressedSet.html" title="An implementation of DirectlyAddressedSet using a static multilevel bitmap as data structure..." alt="" coords="483,143,669,190"/><area shape="rect" id="node11" href="classMultiArrayDirectlyAddressedSet.html" title="A MultiLevelDirectlyAddressedSet implemented with an ArrayBitMapDirectlyAddressedSet per level..." alt="" coords="727,74,913,121"/><area shape="rect" id="node13" href="classMultiHashDirectlyAddressedSet.html" title="MultiHashDirectlyAddressed\lSet\&lt; T \&gt;" alt="" coords="727,143,913,190"/><area shape="rect" id="node15" href="classvEBTree.html" title="vEBTree\&lt; T \&gt;" alt="" coords="768,213,872,243"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for DirectlyAddressedSet:</div>
<div class="dyncontent">
<div class="center"><img src="classDirectlyAddressedSet__coll__graph.png" border="0" usemap="#DirectlyAddressedSet_coll__map" alt="Collaboration graph"/></div>
<map name="DirectlyAddressedSet_coll__map" id="DirectlyAddressedSet_coll__map">
<area shape="rect" id="node2" href="classDirectlyAddressedSet_1_1Iterator.html" title="A general iterator to scan a DirectlyAddressedSet." alt="" coords="5,6,155,53"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classDirectlyAddressedSet-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet_1_1Iterator.html">Iterator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A general iterator to scan a <a class="el" href="classDirectlyAddressedSet.html" title="A static or dynamic set of elements with direct addressing.">DirectlyAddressedSet</a>.  <a href="classDirectlyAddressedSet_1_1Iterator.html#details">More...</a><br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a88d7e26e952770c53a961e98c17a41c7"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a88d7e26e952770c53a961e98c17a41c7">~DirectlyAddressedSet</a> ()</td></tr>
<tr class="memdesc:a88d7e26e952770c53a961e98c17a41c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a88d7e26e952770c53a961e98c17a41c7"></a><br/></td></tr>
<tr class="memitem:a849f2439a4b639973e8f85652394b70f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a849f2439a4b639973e8f85652394b70f">clone</a> () const =0</td></tr>
<tr class="memdesc:a849f2439a4b639973e8f85652394b70f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a copy of this object.  <a href="#a849f2439a4b639973e8f85652394b70f"></a><br/></td></tr>
<tr class="memitem:acabc40612169e2623d80b19c784e551a"><td class="memItemLeft" align="right" valign="top">virtual <br class="typebreak"/>
<a class="el" href="classDirectlyAddressedSet_1_1Iterator.html">DirectlyAddressedSet::Iterator</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#acabc40612169e2623d80b19c784e551a">newIterator</a> ()=0</td></tr>
<tr class="memdesc:acabc40612169e2623d80b19c784e551a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Starts a new iterator for this set.  <a href="#acabc40612169e2623d80b19c784e551a"></a><br/></td></tr>
<tr class="memitem:a2467222186e9bf62f8ca6daabe3628f9"><td class="memItemLeft" align="right" valign="top">virtual <br class="typebreak"/>
<a class="el" href="classDirectlyAddressedSet_1_1Iterator.html">DirectlyAddressedSet::Iterator</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a2467222186e9bf62f8ca6daabe3628f9">newComplIterator</a> ()=0</td></tr>
<tr class="memdesc:a2467222186e9bf62f8ca6daabe3628f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">An <a class="el" href="classDirectlyAddressedSet_1_1Iterator.html" title="A general iterator to scan a DirectlyAddressedSet.">Iterator</a> for the complement of the set represented by the object.  <a href="#a2467222186e9bf62f8ca6daabe3628f9"></a><br/></td></tr>
<tr class="memitem:a3729ca91844f9307afe06f93067e5b2f"><td class="memItemLeft" align="right" valign="top">virtual long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a3729ca91844f9307afe06f93067e5b2f">nextOf</a> (long i)</td></tr>
<tr class="memdesc:a3729ca91844f9307afe06f93067e5b2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the next key in the set, in ascending order, of the specified value.  <a href="#a3729ca91844f9307afe06f93067e5b2f"></a><br/></td></tr>
<tr class="memitem:ac579abc5639d6b55f3d16a177e88ad40"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#ac579abc5639d6b55f3d16a177e88ad40">isInSet</a> (long i) const =0</td></tr>
<tr class="memdesc:ac579abc5639d6b55f3d16a177e88ad40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verify if a element of the universe is in the set.  <a href="#ac579abc5639d6b55f3d16a177e88ad40"></a><br/></td></tr>
<tr class="memitem:a53b903fb7339a9cfa0b97242f984b01c"><td class="memItemLeft" align="right" valign="top">virtual char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a53b903fb7339a9cfa0b97242f984b01c">toArray</a> (long *size)=0</td></tr>
<tr class="memdesc:a53b903fb7339a9cfa0b97242f984b01c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a vector of the elements in the set.  <a href="#a53b903fb7339a9cfa0b97242f984b01c"></a><br/></td></tr>
<tr class="memitem:a68b2f85831f12352973e8f64fb61a924"><td class="memItemLeft" align="right" valign="top">virtual long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a68b2f85831f12352973e8f64fb61a924">universeSize</a> () const </td></tr>
<tr class="memdesc:a68b2f85831f12352973e8f64fb61a924"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size of the universe.  <a href="#a68b2f85831f12352973e8f64fb61a924"></a><br/></td></tr>
<tr class="memitem:ab17ea6e0af7dc026fb12d267c6849530"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#ab17ea6e0af7dc026fb12d267c6849530">isEmpty</a> () const =0</td></tr>
<tr class="memdesc:ab17ea6e0af7dc026fb12d267c6849530"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether this set is empty.  <a href="#ab17ea6e0af7dc026fb12d267c6849530"></a><br/></td></tr>
<tr class="memitem:a3a433c49b02c6e0f582b2e9ed60fac4e"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a3a433c49b02c6e0f582b2e9ed60fac4e">subset</a> (long from, long to) const =0</td></tr>
<tr class="memdesc:a3a433c49b02c6e0f582b2e9ed60fac4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subset containing the elements between the specified values.  <a href="#a3a433c49b02c6e0f582b2e9ed60fac4e"></a><br/></td></tr>
<tr class="memitem:af430216503558a4cfb9b4647ec9c2646"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#af430216503558a4cfb9b4647ec9c2646">getComplement</a> (<a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *res)=0</td></tr>
<tr class="memdesc:af430216503558a4cfb9b4647ec9c2646"><td class="mdescLeft">&#160;</td><td class="mdescRight">The complement of the current set, stored in the set res.  <a href="#af430216503558a4cfb9b4647ec9c2646"></a><br/></td></tr>
<tr class="memitem:a65c7a90ea3d3c767a2a8dbe0f9cde2ee"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a65c7a90ea3d3c767a2a8dbe0f9cde2ee">toSet</a> (long i)=0</td></tr>
<tr class="memdesc:a65c7a90ea3d3c767a2a8dbe0f9cde2ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds the specified key to the set (optional operation).  <a href="#a65c7a90ea3d3c767a2a8dbe0f9cde2ee"></a><br/></td></tr>
<tr class="memitem:afe74e2eeeee28e478c34669899dc96fd"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#afe74e2eeeee28e478c34669899dc96fd">toCompl</a> (long i)=0</td></tr>
<tr class="memdesc:afe74e2eeeee28e478c34669899dc96fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the specified key from the set (optional operation).  <a href="#afe74e2eeeee28e478c34669899dc96fd"></a><br/></td></tr>
<tr class="memitem:a0f014bb0aa9685b3eb7c5dc34c35042d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a0f014bb0aa9685b3eb7c5dc34c35042d">flip</a> (long i)=0</td></tr>
<tr class="memdesc:a0f014bb0aa9685b3eb7c5dc34c35042d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap a element between the set and the complement (optional operation).  <a href="#a0f014bb0aa9685b3eb7c5dc34c35042d"></a><br/></td></tr>
<tr class="memitem:aef0b3fb51862f67e872bd9c984e18b7c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#aef0b3fb51862f67e872bd9c984e18b7c">allToSet</a> ()=0</td></tr>
<tr class="memdesc:aef0b3fb51862f67e872bd9c984e18b7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add all the elements in the universe to the set (optional operation)  <a href="#aef0b3fb51862f67e872bd9c984e18b7c"></a><br/></td></tr>
<tr class="memitem:a07ad3c0c3ca7df962ad9af56df76a098"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a07ad3c0c3ca7df962ad9af56df76a098">allToCompl</a> ()=0</td></tr>
<tr class="memdesc:a07ad3c0c3ca7df962ad9af56df76a098"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add all the elements in the universe to the complement (optional operation)  <a href="#a07ad3c0c3ca7df962ad9af56df76a098"></a><br/></td></tr>
<tr class="memitem:a254e14e6aad4b4b7969acf896fd750a2"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a254e14e6aad4b4b7969acf896fd750a2">flipAll</a> ()=0</td></tr>
<tr class="memdesc:a254e14e6aad4b4b7969acf896fd750a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The complement of the current set (optional operation)  <a href="#a254e14e6aad4b4b7969acf896fd750a2"></a><br/></td></tr>
<tr class="memitem:ace4dc1b4e41e18d0c7cef3fa17c64dc5"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#ace4dc1b4e41e18d0c7cef3fa17c64dc5">addAll</a> (<a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *v)</td></tr>
<tr class="memdesc:ace4dc1b4e41e18d0c7cef3fa17c64dc5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Union of the current set and a specified set (optional operation).  <a href="#ace4dc1b4e41e18d0c7cef3fa17c64dc5"></a><br/></td></tr>
<tr class="memitem:a385114535ad6bc398181459b1b01c75a"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a385114535ad6bc398181459b1b01c75a">symDiff</a> (<a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *v)</td></tr>
<tr class="memdesc:a385114535ad6bc398181459b1b01c75a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Symmetric difference of the current set and a specified set (optional operation)  <a href="#a385114535ad6bc398181459b1b01c75a"></a><br/></td></tr>
<tr class="memitem:af45e06fe443a71cb91635ddd397ec35f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#af45e06fe443a71cb91635ddd397ec35f">removeAll</a> (<a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *v)</td></tr>
<tr class="memdesc:af45e06fe443a71cb91635ddd397ec35f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Difference of the current set and a specified set (optional operation)  <a href="#af45e06fe443a71cb91635ddd397ec35f"></a><br/></td></tr>
<tr class="memitem:a722dd648d9caa8449f26741f53b85ba2"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a722dd648d9caa8449f26741f53b85ba2">retainAll</a> (<a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *v)</td></tr>
<tr class="memdesc:a722dd648d9caa8449f26741f53b85ba2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Intersection of the current set and a specified set (optional operation)  <a href="#a722dd648d9caa8449f26741f53b85ba2"></a><br/></td></tr>
<tr class="memitem:a574cd41ea4981a5ff94ce64337eb0cdf"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a574cd41ea4981a5ff94ce64337eb0cdf">unionOf</a> (<a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *v, <a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *w)</td></tr>
<tr class="memdesc:a574cd41ea4981a5ff94ce64337eb0cdf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds to this set all the elements in the union of two specified sets (optional operation)  <a href="#a574cd41ea4981a5ff94ce64337eb0cdf"></a><br/></td></tr>
<tr class="memitem:a49b2feab5c731dc3d2b3ff316597345a"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a49b2feab5c731dc3d2b3ff316597345a">symDiffOf</a> (<a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *v, <a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *w)</td></tr>
<tr class="memdesc:a49b2feab5c731dc3d2b3ff316597345a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds to this set all the elements in the symmetric difference of two specified sets (optional operation)  <a href="#a49b2feab5c731dc3d2b3ff316597345a"></a><br/></td></tr>
<tr class="memitem:aaf806e606c647a25918827d95467db5d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#aaf806e606c647a25918827d95467db5d">intersectOf</a> (<a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *v, <a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *w)</td></tr>
<tr class="memdesc:aaf806e606c647a25918827d95467db5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds to this set all the elements in the intersection of two specified sets (optional operation)  <a href="#aaf806e606c647a25918827d95467db5d"></a><br/></td></tr>
<tr class="memitem:ad671fb37b8eee9801d1550fe92504ab0"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#ad671fb37b8eee9801d1550fe92504ab0">diffOf</a> (<a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *v, <a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *w)</td></tr>
<tr class="memdesc:ad671fb37b8eee9801d1550fe92504ab0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds to this set all the elements in the difference of two specified sets (optional operation)  <a href="#ad671fb37b8eee9801d1550fe92504ab0"></a><br/></td></tr>
<tr class="memitem:a6ab0477539b69fb94e8b8bca622cc187"><td class="memItemLeft" align="right" valign="top">virtual long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a6ab0477539b69fb94e8b8bca622cc187">firstInSet</a> ()</td></tr>
<tr class="memdesc:a6ab0477539b69fb94e8b8bca622cc187"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine the first element of the set represented by the current object.  <a href="#a6ab0477539b69fb94e8b8bca622cc187"></a><br/></td></tr>
<tr class="memitem:a798e2503651986e33dd7af1e510f50a6"><td class="memItemLeft" align="right" valign="top">virtual long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a798e2503651986e33dd7af1e510f50a6">firstInCompl</a> ()=0</td></tr>
<tr class="memdesc:a798e2503651986e33dd7af1e510f50a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine the first element of the complement of the set represented by the current object.  <a href="#a798e2503651986e33dd7af1e510f50a6"></a><br/></td></tr>
<tr class="memitem:a3340fde7ad523ac0c3e121b898be1e3c"><td class="memItemLeft" align="right" valign="top">virtual long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a3340fde7ad523ac0c3e121b898be1e3c">cardOfSet</a> () const </td></tr>
<tr class="memdesc:a3340fde7ad523ac0c3e121b898be1e3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The cardinality of the set represented by the object.  <a href="#a3340fde7ad523ac0c3e121b898be1e3c"></a><br/></td></tr>
<tr class="memitem:a86fbb2d9a8fc212f513d0ded3bee67dc"><td class="memItemLeft" align="right" valign="top">virtual long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a86fbb2d9a8fc212f513d0ded3bee67dc">cardOfCompl</a> () const </td></tr>
<tr class="memdesc:a86fbb2d9a8fc212f513d0ded3bee67dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">The cardinality of the complement of the set represented by the object.  <a href="#a86fbb2d9a8fc212f513d0ded3bee67dc"></a><br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ad5b694fa37b9b6d2fe79ddee76724de5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#ad5b694fa37b9b6d2fe79ddee76724de5">DirectlyAddressedSet</a> (long size)</td></tr>
<tr class="memdesc:ad5b694fa37b9b6d2fe79ddee76724de5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic constructor.  <a href="#ad5b694fa37b9b6d2fe79ddee76724de5"></a><br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a72575479afb5dd067267fa92913bc80a"><td class="memItemLeft" align="right" valign="top">const long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a72575479afb5dd067267fa92913bc80a">u</a></td></tr>
<tr class="memdesc:a72575479afb5dd067267fa92913bc80a"><td class="mdescLeft">&#160;</td><td class="mdescRight">the size of the universe  <a href="#a72575479afb5dd067267fa92913bc80a"></a><br/></td></tr>
<tr class="memitem:ab50aba05f27ce2c0f6b1627df11b8733"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDirectlyAddressedSet_1_1Iterator.html">Iterator</a> *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#ab50aba05f27ce2c0f6b1627df11b8733">setIt</a></td></tr>
<tr class="memdesc:ab50aba05f27ce2c0f6b1627df11b8733"><td class="mdescLeft">&#160;</td><td class="mdescRight">internal iterator used to implement stateless enumeration methods on this set  <a href="#ab50aba05f27ce2c0f6b1627df11b8733"></a><br/></td></tr>
<tr class="memitem:a663e401ccbabdf2583d8011c20b4997d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDirectlyAddressedSet_1_1Iterator.html">Iterator</a> *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a663e401ccbabdf2583d8011c20b4997d">complIt</a></td></tr>
<tr class="memdesc:a663e401ccbabdf2583d8011c20b4997d"><td class="mdescLeft">&#160;</td><td class="mdescRight">internal iterator used to implement stateless enumeration methods on the complement of this set  <a href="#a663e401ccbabdf2583d8011c20b4997d"></a><br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="pro-static-attribs"></a>
Static Protected Attributes</h2></td></tr>
<tr class="memitem:a27a20af4d1294aaf58d199116393b459"><td class="memItemLeft" align="right" valign="top">static char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a27a20af4d1294aaf58d199116393b459">bitvector</a> = NULL</td></tr>
<tr class="memdesc:a27a20af4d1294aaf58d199116393b459"><td class="mdescLeft">&#160;</td><td class="mdescRight">to be returned by <a class="el" href="classDirectlyAddressedSet.html#a53b903fb7339a9cfa0b97242f984b01c" title="Create a vector of the elements in the set.">toArray()</a>  <a href="#a27a20af4d1294aaf58d199116393b459"></a><br/></td></tr>
<tr class="memitem:aa7d3386c32161ef55855487251d4d990"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#aa7d3386c32161ef55855487251d4d990">nbv</a> = 0</td></tr>
<tr class="memdesc:aa7d3386c32161ef55855487251d4d990"><td class="mdescLeft">&#160;</td><td class="mdescRight">size of <a class="el" href="classDirectlyAddressedSet.html#a27a20af4d1294aaf58d199116393b459" title="to be returned by toArray()">vEBTree&lt;T&gt;::bitvector</a>, in number of bytes  <a href="#aa7d3386c32161ef55855487251d4d990"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>A static or dynamic set of elements with direct addressing. </p>
<p>This abstract class represents a set of elements, named <em>keys</em>, taken from a totally ordered universe <img class="formulaInl" alt="$U = \{ 0, 1, \ldots, u - 1 \}$" src="form_19.png"/> of size <img class="formulaInl" alt="$u \geq 0$" src="form_18.png"/>. Each key in the set is aimed at acting as a direct address in such a way that lookup, insert and delete operations can be performed in constant time. A class extending this abstract class must implement the actual data structure used to store this set.</p>
<p>By definition, every key of the universe is either in this set or in its complement. The complement is composed by the keys of the universe not in the set. This class provide methods to query or manipulate the set and its complement with respect to the universe. However, from a performance standpoint, it is often highly recommended that all or some these methods be overriden in the concrete classes that extend from this one. In many cases, the general implementations in this class will perform costly accesses to the set. </p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ad5b694fa37b9b6d2fe79ddee76724de5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">DirectlyAddressedSet::DirectlyAddressedSet </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>size</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Basic constructor. </p>
<p>A simple constructor to an empty set with a universe of a specified size.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>of the universe. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a88d7e26e952770c53a961e98c17a41c7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">DirectlyAddressedSet::~DirectlyAddressedSet </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Destructor. </p>
<p>A simple destructor to an object of this class </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="ace4dc1b4e41e18d0c7cef3fa17c64dc5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void DirectlyAddressedSet::addAll </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Union of the current set and a specified set (optional operation). </p>
<p>When this method returns, this object contains all elements of the resulting set.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">v</td><td>the other set to be operated </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented in <a class="el" href="classHashBitMapDirectlyAddressedSet.html#aac1fe838a24ea2e265aca01363505344">HashBitMapDirectlyAddressedSet&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a07ad3c0c3ca7df962ad9af56df76a098"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void DirectlyAddressedSet::allToCompl </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add all the elements in the universe to the complement (optional operation) </p>
<p>Add all the elements in the universe to the complement of the set represented by this object </p>

<p>Implemented in <a class="el" href="classHashBitMapDirectlyAddressedSet.html#ad2fa35f0f255c7ab7c996ec3aacb1aca">HashBitMapDirectlyAddressedSet&lt; T &gt;</a>, <a class="el" href="classArrayBitMapDirectlyAddressedSet.html#a10c39854072d23aef7f13a4f59d94a7a">ArrayBitMapDirectlyAddressedSet&lt; T &gt;</a>, <a class="el" href="classBitMapDirectlyAddressedSet.html#a98721fe36c0309b662f0a4053b8c10b3">BitMapDirectlyAddressedSet&lt; T &gt;</a>, and <a class="el" href="classMultiLevelDirectlyAddressedSet.html#ad23fa9172361ef5cb03fe9a01893a36d">MultiLevelDirectlyAddressedSet&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="aef0b3fb51862f67e872bd9c984e18b7c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void DirectlyAddressedSet::allToSet </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add all the elements in the universe to the set (optional operation) </p>
<p>Add all the elements in the universe to the set represented by this object </p>

<p>Implemented in <a class="el" href="classHashBitMapDirectlyAddressedSet.html#a9ef5943ad42f0c075dbc64576aacf605">HashBitMapDirectlyAddressedSet&lt; T &gt;</a>, <a class="el" href="classArrayBitMapDirectlyAddressedSet.html#abea99d9990d0a7942847f44f60cf960d">ArrayBitMapDirectlyAddressedSet&lt; T &gt;</a>, <a class="el" href="classBitMapDirectlyAddressedSet.html#a1886374dcac4d2468c71c98aea3f2f06">BitMapDirectlyAddressedSet&lt; T &gt;</a>, and <a class="el" href="classMultiLevelDirectlyAddressedSet.html#a37cc711f1f2685fed602ed79e28045b2">MultiLevelDirectlyAddressedSet&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a86fbb2d9a8fc212f513d0ded3bee67dc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long DirectlyAddressedSet::cardOfCompl </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The cardinality of the complement of the set represented by the object. </p>
<p>The cardinality of the set represented by the set. The cardinality of the set is a natural number that counts the number of elements in it.</p>
<p>This method takes linear time in the number of elements in the set.</p>
<dl class="section return"><dt>Returns:</dt><dd>the size of the complement of the current set. </dd></dl>

</div>
</div>
<a class="anchor" id="a3340fde7ad523ac0c3e121b898be1e3c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long DirectlyAddressedSet::cardOfSet </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The cardinality of the set represented by the object. </p>
<p>The cardinality of the set represented by the set. The cardinality of the set is a natural number that counts the number of elements in it.</p>
<p>This method takes linear time in the number of elements in the set.</p>
<dl class="section return"><dt>Returns:</dt><dd>the size of the current set. </dd></dl>

</div>
</div>
<a class="anchor" id="a849f2439a4b639973e8f85652394b70f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a>* DirectlyAddressedSet::clone </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Creates a copy of this object. </p>
<dl class="section return"><dt>Returns:</dt><dd>a copy of this object. </dd></dl>

<p>Implemented in <a class="el" href="classArrayBitMapDirectlyAddressedSet.html#a841150a59c3949821d092f9a8b1f6060">ArrayBitMapDirectlyAddressedSet&lt; T &gt;</a>, <a class="el" href="classBitMapDirectlyAddressedSet.html#a17a8959c7a96ae90a755f7106ff06093">BitMapDirectlyAddressedSet&lt; T &gt;</a>, and <a class="el" href="classMultiLevelDirectlyAddressedSet.html#aaf18952745f809e26f634ad47d75ca9a">MultiLevelDirectlyAddressedSet&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="ad671fb37b8eee9801d1550fe92504ab0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void DirectlyAddressedSet::diffOf </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *&#160;</td>
          <td class="paramname"><em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *&#160;</td>
          <td class="paramname"><em>w</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Adds to this set all the elements in the difference of two specified sets (optional operation) </p>
<p>When this method returns, this object contains all elements of the resulting set.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">v</td><td>one set to be operated </td></tr>
    <tr><td class="paramname">w</td><td>the other set</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="classDirectlyAddressedSet.html#af45e06fe443a71cb91635ddd397ec35f" title="Difference of the current set and a specified set (optional operation)">removeAll()</a> </dd></dl>

<p>Reimplemented in <a class="el" href="classHashBitMapDirectlyAddressedSet.html#a11d9d6369c29f5ca084f25c4b5b33e36">HashBitMapDirectlyAddressedSet&lt; T &gt;</a>, and <a class="el" href="classBitMapDirectlyAddressedSet.html#a31d1c87fec3e523b241595d4cb73a808">BitMapDirectlyAddressedSet&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a798e2503651986e33dd7af1e510f50a6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long DirectlyAddressedSet::firstInCompl </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determine the first element of the complement of the set represented by the current object. </p>
<p>Determine the first element of the complement of the set represented by the current object, according by the total order implemented by the element.</p>
<p>If the set is the whole universe the return will depend on the implementation on the concrete subclass.</p>
<dl class="section return"><dt>Returns:</dt><dd>the first element in the set according to the total order. </dd></dl>

<p>Implemented in <a class="el" href="classMultiLevelDirectlyAddressedSet.html#a04c9ab9e7b0d700aefa6cb6db3fa11af">MultiLevelDirectlyAddressedSet&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a6ab0477539b69fb94e8b8bca622cc187"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long DirectlyAddressedSet::firstInSet </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determine the first element of the set represented by the current object. </p>
<p>Determine the first element of the set represented by the current object, according by the total order implemented by the element.</p>
<p>If the set is empty the return will depend on the implementation on the concrete subclass.</p>
<dl class="section return"><dt>Returns:</dt><dd>the first element in the set according to the total order. </dd></dl>

</div>
</div>
<a class="anchor" id="a0f014bb0aa9685b3eb7c5dc34c35042d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void DirectlyAddressedSet::flip </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Swap a element between the set and the complement (optional operation). </p>
<p>If the specified element is in the set it will be removed, if not it will be added. This method is not implemented for static sets.</p>
<p>The parameter i must be a element of the universe, otherwise a error will occur.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">i</td><td>the especified element. </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="classHashBitMapDirectlyAddressedSet.html#a2e4cfe9c57b5366d148b5ab106986759">HashBitMapDirectlyAddressedSet&lt; T &gt;</a>, and <a class="el" href="classBitMapDirectlyAddressedSet.html#a8bacc011da032898e445e0bd41dc5f14">BitMapDirectlyAddressedSet&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a254e14e6aad4b4b7969acf896fd750a2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void DirectlyAddressedSet::flipAll </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The complement of the current set (optional operation) </p>
<p>Overwrite this object with its complement set.</p>
<p>More precisely, be A is a set, then <img class="formulaInl" alt="$\bar{A}$" src="form_4.png"/> is the complement of A if <img class="formulaInl" alt="$x \in \bar{A}$" src="form_5.png"/> if and only if <img class="formulaInl" alt="$ x \notin A$" src="form_6.png"/>. </p>

<p>Implemented in <a class="el" href="classHashBitMapDirectlyAddressedSet.html#a4eff7810d15044ce6d63dafc5aaf0d64">HashBitMapDirectlyAddressedSet&lt; T &gt;</a>, <a class="el" href="classArrayBitMapDirectlyAddressedSet.html#a00dea6233fde1a131e0edf98533e3721">ArrayBitMapDirectlyAddressedSet&lt; T &gt;</a>, and <a class="el" href="classBitMapDirectlyAddressedSet.html#a3dc0ff33cdfede898cfd29d10caa0ad6">BitMapDirectlyAddressedSet&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="af430216503558a4cfb9b4647ec9c2646"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void DirectlyAddressedSet::getComplement </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *&#160;</td>
          <td class="paramname"><em>res</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The complement of the current set, stored in the set res. </p>
<p>This method has the same setComplement(), but do not overwrite the object.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">res</td><td>the object to store the complement of the current set </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also:</dt><dd>setComplement() </dd></dl>

</div>
</div>
<a class="anchor" id="aaf806e606c647a25918827d95467db5d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void DirectlyAddressedSet::intersectOf </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *&#160;</td>
          <td class="paramname"><em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *&#160;</td>
          <td class="paramname"><em>w</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Adds to this set all the elements in the intersection of two specified sets (optional operation) </p>
<p>When this method returns, this object contains all elements of the resulting set.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">v</td><td>one set to be operated </td></tr>
    <tr><td class="paramname">w</td><td>the other set</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="classDirectlyAddressedSet.html#a722dd648d9caa8449f26741f53b85ba2" title="Intersection of the current set and a specified set (optional operation)">retainAll()</a> </dd></dl>

<p>Reimplemented in <a class="el" href="classHashBitMapDirectlyAddressedSet.html#a63085c70d88fb118bdc85b98d86d3804">HashBitMapDirectlyAddressedSet&lt; T &gt;</a>, and <a class="el" href="classBitMapDirectlyAddressedSet.html#a711f4b377ff461e9773b2a3eabcf89af">BitMapDirectlyAddressedSet&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="ab17ea6e0af7dc026fb12d267c6849530"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool DirectlyAddressedSet::isEmpty </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Checks whether this set is empty. </p>
<p>Tests if the set was no elements. If the set was no elements it is empty and this method should return true.</p>
<p>As this method depends on the data structure and the universe used, it has to be implemented in each child concrete class.</p>
<dl class="section return"><dt>Returns:</dt><dd><code>true</code> if the set is empty and <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a class="anchor" id="ac579abc5639d6b55f3d16a177e88ad40"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool DirectlyAddressedSet::isInSet </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Verify if a element of the universe is in the set. </p>
<p>Verify if the specified element belong or not to the set.</p>
<p>The parameter i must be a element of the universe, otherwise a error will occur.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">i</td><td>the specified element</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>true if i belongs to the set and false otherwise </dd></dl>

<p>Implemented in <a class="el" href="classBitMapDirectlyAddressedSet.html#aae0d63c2cf0f6dbf65657448b14287b5">BitMapDirectlyAddressedSet&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a2467222186e9bf62f8ca6daabe3628f9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classDirectlyAddressedSet_1_1Iterator.html">DirectlyAddressedSet::Iterator</a>* DirectlyAddressedSet::newComplIterator </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>An <a class="el" href="classDirectlyAddressedSet_1_1Iterator.html" title="A general iterator to scan a DirectlyAddressedSet.">Iterator</a> for the complement of the set represented by the object. </p>
<p>Return an iterator to enumerate all the elements of the universe not belonging to this object</p>
<dl class="section return"><dt>Returns:</dt><dd>an iterator to the complement of the set </dd></dl>

<p>Implemented in <a class="el" href="classBitMapDirectlyAddressedSet.html#adfd95747fa6f3852640b6f291a515d5f">BitMapDirectlyAddressedSet&lt; T &gt;</a>, and <a class="el" href="classMultiLevelDirectlyAddressedSet.html#a9a2bdb4e574330b4f0680f2767cf1e2c">MultiLevelDirectlyAddressedSet&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="acabc40612169e2623d80b19c784e551a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classDirectlyAddressedSet_1_1Iterator.html">DirectlyAddressedSet::Iterator</a>* DirectlyAddressedSet::newIterator </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Starts a new iterator for this set. </p>
<p>Returns an iterator to enumerate all the keys belonging to this object.</p>
<p>The state of the returned iterator is reset to the beginning of the enumeration.</p>
<dl class="section return"><dt>Returns:</dt><dd>the new iterator to the set </dd></dl>

<p>Implemented in <a class="el" href="classBitMapDirectlyAddressedSet.html#adf904ffa5738d522834a5ef3cebec79d">BitMapDirectlyAddressedSet&lt; T &gt;</a>, and <a class="el" href="classMultiLevelDirectlyAddressedSet.html#ae8e98bf9c0d8425405c7aa12d5d376fc">MultiLevelDirectlyAddressedSet&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a3729ca91844f9307afe06f93067e5b2f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long DirectlyAddressedSet::nextOf </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines the next key in the set, in ascending order, of the specified value. </p>
<p>This method returns the smallest key in the set which is greater than or equal to the specified value (which is not required to be a key in the universe). An arbitrary value is returned if there is no next key in the set.</p>
<p>This method is provided by convenience, but it is less efficient than using an iterator provided by newSetIterator() or <a class="el" href="classDirectlyAddressedSet.html#a2467222186e9bf62f8ca6daabe3628f9" title="An Iterator for the complement of the set represented by the object.">newComplIterator()</a>.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">i</td><td>the specified value (which is not required to be a key in the universe)</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>the smallest key in the set which is greater than or equal to the specified value, if there is one, or an arbitrary value otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="af45e06fe443a71cb91635ddd397ec35f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void DirectlyAddressedSet::removeAll </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Difference of the current set and a specified set (optional operation) </p>
<p>When this method returns, this object contains all elements of the resulting set.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">v</td><td>the other set to be operated </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented in <a class="el" href="classHashBitMapDirectlyAddressedSet.html#ac2a0a4c401b1309a3f40b061e245f2dc">HashBitMapDirectlyAddressedSet&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a722dd648d9caa8449f26741f53b85ba2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void DirectlyAddressedSet::retainAll </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Intersection of the current set and a specified set (optional operation) </p>
<p>When this method returns, this object contains all elements of the resulting set.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">v</td><td>the other set to be operated </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented in <a class="el" href="classHashBitMapDirectlyAddressedSet.html#a3a6fb09c800637868cc8fe0d92d839ce">HashBitMapDirectlyAddressedSet&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a3a433c49b02c6e0f582b2e9ed60fac4e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a>* DirectlyAddressedSet::subset </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>from</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>to</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Subset containing the elements between the specified values. </p>
<p>The elements in the subset are redefined such that an element <code>i</code> in this set is mapped to <img class="formulaInl" alt="$i - 2^{\lfloor \log from \rfloor}$" src="form_34.png"/></p>
<p>The returned set is backed by this one.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">from</td><td>first element to appear in the subset </td></tr>
    <tr><td class="paramname">to</td><td>one plus the last element to appear in the subset</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>the subset of this set </dd></dl>

<p>Implemented in <a class="el" href="classArrayBitMapDirectlyAddressedSet.html#ad3b29bc76c6281e4f2202487056be69a">ArrayBitMapDirectlyAddressedSet&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a385114535ad6bc398181459b1b01c75a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void DirectlyAddressedSet::symDiff </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Symmetric difference of the current set and a specified set (optional operation) </p>
<p>When this method returns, this object contains all elements of the resulting set.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">v</td><td>the other set to be operated </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented in <a class="el" href="classHashBitMapDirectlyAddressedSet.html#a16e9a93a4258b96bce9888dc7ac299f4">HashBitMapDirectlyAddressedSet&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a49b2feab5c731dc3d2b3ff316597345a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void DirectlyAddressedSet::symDiffOf </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *&#160;</td>
          <td class="paramname"><em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *&#160;</td>
          <td class="paramname"><em>w</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Adds to this set all the elements in the symmetric difference of two specified sets (optional operation) </p>
<p>When this method returns, this object contains all elements of the resulting set.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">v</td><td>one set to be operated </td></tr>
    <tr><td class="paramname">w</td><td>the other set</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="classDirectlyAddressedSet.html#a385114535ad6bc398181459b1b01c75a" title="Symmetric difference of the current set and a specified set (optional operation)">symDiff()</a> </dd></dl>

<p>Reimplemented in <a class="el" href="classHashBitMapDirectlyAddressedSet.html#aab9895debd859e323c89b005b4b76d4b">HashBitMapDirectlyAddressedSet&lt; T &gt;</a>, and <a class="el" href="classBitMapDirectlyAddressedSet.html#a8ab9c444519d40684247c4bc3c1be4cc">BitMapDirectlyAddressedSet&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a53b903fb7339a9cfa0b97242f984b01c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual char* DirectlyAddressedSet::toArray </td>
          <td>(</td>
          <td class="paramtype">long *&#160;</td>
          <td class="paramname"><em>size</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create a vector of the elements in the set. </p>
<p>Creates a vector with the size of the set in which each position is a element of the set represented by the object.</p>
<p>The elements are stored respecting the total order between than, so if <code>vec</code> is the vector returned by this method, if <code>i</code> <code>&lt;</code> <code>j</code> then <code>vec</code>[i<code></code>] is smaller than <code>vec</code>[j<code></code>].</p>
<p>The parameter size will be overwrite to store the size of the set, so its previous value will be lost.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>a pointer to store the size of the set.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>a array contains all the elements of the set. </dd></dl>

<p>Implemented in <a class="el" href="classArrayBitMapDirectlyAddressedSet.html#a63d9f3c1ce9750adc4d4f96793a31697">ArrayBitMapDirectlyAddressedSet&lt; T &gt;</a>, <a class="el" href="classBitMapDirectlyAddressedSet.html#a8e4dd512b40fdada85967c663480878f">BitMapDirectlyAddressedSet&lt; T &gt;</a>, and <a class="el" href="classMultiLevelDirectlyAddressedSet.html#aff41b4ecea502a806cd47a1b28b25ba6">MultiLevelDirectlyAddressedSet&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="afe74e2eeeee28e478c34669899dc96fd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void DirectlyAddressedSet::toCompl </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Removes the specified key from the set (optional operation). </p>
<p>The specified key must be a member of the universe, otherwise a error will occur. This method is not implemented for static sets.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">i</td><td>the specified key. </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="classHashBitMapDirectlyAddressedSet.html#a1f314b97e198be288ee27d3e030086c2">HashBitMapDirectlyAddressedSet&lt; T &gt;</a>, and <a class="el" href="classBitMapDirectlyAddressedSet.html#aa084b0ee63e53920d9cfa662feb3ffeb">BitMapDirectlyAddressedSet&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a65c7a90ea3d3c767a2a8dbe0f9cde2ee"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void DirectlyAddressedSet::toSet </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Adds the specified key to the set (optional operation). </p>
<p>The specified key must be a member of the universe, otherwise a error will occur. This method is not implemented for static sets.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">i</td><td>the specified key. </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="classHashBitMapDirectlyAddressedSet.html#aa59c271b8173efe81e481923dd3756a9">HashBitMapDirectlyAddressedSet&lt; T &gt;</a>, and <a class="el" href="classBitMapDirectlyAddressedSet.html#a304b510e345a395c13f1fdfcbef160e2">BitMapDirectlyAddressedSet&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a574cd41ea4981a5ff94ce64337eb0cdf"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void DirectlyAddressedSet::unionOf </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *&#160;</td>
          <td class="paramname"><em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *&#160;</td>
          <td class="paramname"><em>w</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Adds to this set all the elements in the union of two specified sets (optional operation) </p>
<p>When this method returns, this object contains all elements of the resulting set.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">v</td><td>one set to be operated </td></tr>
    <tr><td class="paramname">w</td><td>the other set</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="classDirectlyAddressedSet.html#ace4dc1b4e41e18d0c7cef3fa17c64dc5" title="Union of the current set and a specified set (optional operation).">addAll()</a> </dd></dl>

<p>Reimplemented in <a class="el" href="classHashBitMapDirectlyAddressedSet.html#a93c52f072e3e1106697084f68c525988">HashBitMapDirectlyAddressedSet&lt; T &gt;</a>, and <a class="el" href="classBitMapDirectlyAddressedSet.html#a781346a0534bce876e240cb2cc92d0ac">BitMapDirectlyAddressedSet&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a68b2f85831f12352973e8f64fb61a924"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long DirectlyAddressedSet::universeSize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The size of the universe. </p>
<p>This method will return the size of the universe in which this set is embedded.</p>
<dl class="section return"><dt>Returns:</dt><dd>the size of the universe </dd></dl>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a27a20af4d1294aaf58d199116393b459"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">char * DirectlyAddressedSet::bitvector = NULL</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>to be returned by <a class="el" href="classDirectlyAddressedSet.html#a53b903fb7339a9cfa0b97242f984b01c" title="Create a vector of the elements in the set.">toArray()</a> </p>

</div>
</div>
<a class="anchor" id="a663e401ccbabdf2583d8011c20b4997d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classDirectlyAddressedSet_1_1Iterator.html">Iterator</a>* const DirectlyAddressedSet::complIt</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>internal iterator used to implement stateless enumeration methods on the complement of this set </p>

</div>
</div>
<a class="anchor" id="aa7d3386c32161ef55855487251d4d990"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int DirectlyAddressedSet::nbv = 0</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>size of <a class="el" href="classDirectlyAddressedSet.html#a27a20af4d1294aaf58d199116393b459" title="to be returned by toArray()">vEBTree&lt;T&gt;::bitvector</a>, in number of bytes </p>

</div>
</div>
<a class="anchor" id="ab50aba05f27ce2c0f6b1627df11b8733"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classDirectlyAddressedSet_1_1Iterator.html">Iterator</a>* const DirectlyAddressedSet::setIt</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>internal iterator used to implement stateless enumeration methods on this set </p>

</div>
</div>
<a class="anchor" id="a72575479afb5dd067267fa92913bc80a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const long DirectlyAddressedSet::u</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>the size of the universe </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>datastruct/<a class="el" href="DirectlyAddressedSet_8h_source.html">DirectlyAddressedSet.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Nov 26 2012 17:06:46 for Data Structures for Sets and Graphs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.1.1
</small></address>
</body>
</html>
